﻿using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;

namespace VOL.Entity.DomainModels.ApiEntity.OutPut
{
    public class GroupOutputDto
    {
        /// <summary>
        ///专家组（雪花ID）64
        /// </summary>
        [Key]
        [Display(Name = "专家组（雪花ID）64")]
        [MaxLength(64)]
        [Column(TypeName = "nvarchar(64)")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        public string panelID { get; set; } = new Snowflake.Core.IdWorker(1, 1).NextId().ToString();

        /// <summary>
        ///专家组名称
        /// </summary>
        [Display(Name = "专家组名称")]
        [MaxLength(200)]
        [Column(TypeName = "nvarchar(200)")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        public string panelName { get; set; }

        /// <summary>
        ///创建人
        /// </summary>
        [Display(Name = "创建人")]
        [MaxLength(200)]
        [Column(TypeName = "nvarchar(200)")]
        [Editable(true)]
        public string createor { get; set; }

        /// <summary>
        ///修改人
        /// </summary>
        [Display(Name = "修改人")]
        [MaxLength(200)]
        [Column(TypeName = "nvarchar(200)")]
        [Editable(true)]
        public string modifier { get; set; }

        /// <summary>
        ///修改时间
        /// </summary>
        [Display(Name = "修改时间")]
        [Column(TypeName = "datetime")]
        [Editable(true)]
        public DateTime? modifierTime { get; set; }

        /// <summary>
        ///描述
        /// </summary>
        [Display(Name = "描述")]
        [MaxLength(200)]
        [Column(TypeName = "nvarchar(200)")]
        [Editable(true)]
        public string remark { get; set; }

        /// <summary>
        ///删除状态
        /// </summary>
        [Display(Name = "删除状态")]
        [Column(TypeName = "int")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        public int isDel { get; set; }

        /// <summary>
        ///创建时间
        /// </summary>
        [Display(Name = "创建时间")]
        [Column(TypeName = "datetime")]
        public DateTime? createDate { get; set; }

        /// <summary>
        ///上级ID
        /// </summary>
        [Display(Name = "上级ID 64")]
        [MaxLength(64)]
        [Column(TypeName = "nvarchar(64)")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        public string UpId { get; set; }
        /// <summary>
        ///专家编号
        /// </summary>
        [Display(Name = "专家编号")]
        [MaxLength(64)]
        [Column(TypeName = "nvarchar(64)")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        public string panelKey { get; set; }
        /// <summary>
        ///专家姓名
        /// </summary>
        [Display(Name = "专家姓名")]
        [MaxLength(200)]
        [Column(TypeName = "nvarchar(200)")]
        [Editable(true)]
        [Required(AllowEmptyStrings = false)]
        public string specialistName { get; set; }
        public List<GroupOutputDto> children { get; set; }

    }
}
